package com.eltsistemas.controller;

import com.eltsistemas.dao.AgendamentoDao;
import com.eltsistemas.dao.ClienteDao;
import com.eltsistemas.dao.PlacaDao;
import com.eltsistemas.modelo.Agendamento;
import com.eltsistemas.modelo.Cliente;
import java.util.List;

public class AgendamentoController {
    
    public boolean adiciona(Agendamento agendamento,String cliente, String placa)
    {
     
        ClienteDao daoCliente = new ClienteDao();
        PlacaDao daoPlaca = new PlacaDao();
        
        //Busca o codigo do cliente de acordo com o nome
        
        if(!cliente.isEmpty())
        {
            Cliente c = new Cliente();
            c.setRazao(cliente);
            agendamento.setId_Cliente(daoCliente.buscaCodigo( c ).getId());
        }
  
        //Busca o codigo da placa de acordo como o nome
        agendamento.setId_Placa(daoPlaca.buscaCodigo(placa).getId());
        
        AgendamentoDao daoAgendamento = new AgendamentoDao();
            
        if(daoAgendamento.buscaCodigo( agendamento.getId_Placa() ) == null)
        {
            new AgendamentoDao().adiciona(agendamento);
            return true;
        }

        return false;
    }
    
    public List<Agendamento> lista()
    {
        AgendamentoDao daoAgendamento = new AgendamentoDao();
        List<Agendamento> agendamentoList = daoAgendamento.lista();
        return agendamentoList;
    }
    
    public Agendamento exibeDados(Agendamento agendamento)
    {
        AgendamentoDao daoAgendamento = new AgendamentoDao();
        Agendamento a = new Agendamento();
        a = daoAgendamento.exibe(agendamento);
        return a;
    }
    
    public boolean altera(Agendamento agendamento,String cliente, String placa)
    {
     
        ClienteDao daoCliente = new ClienteDao();
        PlacaDao daoPlaca = new PlacaDao();
        
        //Busca o codigo do cliente de acordo com o nome
        
        if(!cliente.isEmpty())
        {
            Cliente c = new Cliente();
            c.setRazao(cliente);
            agendamento.setId_Cliente(daoCliente.buscaCodigo( c ).getId());
        }
  
        //Busca o codigo da placa de acordo como o nome
        agendamento.setId_Placa(daoPlaca.buscaCodigo(placa).getId());
        
        AgendamentoDao daoAgendamento = new AgendamentoDao();
            
        if(daoAgendamento.buscaCodigo( agendamento.getId_Placa() ) == null)
        {
            new AgendamentoDao().altera(agendamento);
            return true;
        }

        return false;
    }
    
    public void delete(Agendamento agendamento)
    {
       AgendamentoDao daoAgendamento = new AgendamentoDao();
       daoAgendamento.remover(agendamento);
    }
    
}
